package leetcode;


/**
 * 动态规划：最长重复子数组
 */
public class Solution61 {
    public int findLength(int[] nums1, int[] nums2) {
        //定义dp数组
        int[][] dp = new int[nums1.length + 1][nums2.length + 1];
        int res = 0;
        //遍历数组
        for(int i = 1;i <= nums1.length;i++){ //遍历nums1
            for(int j = 1;j <= nums2.length;j++){ //遍历nums2
                if(nums1[i - 1] == nums2[j - 1]){  //进行比较
                    dp[i][j] = dp[i-1][j-1] + 1;  //向后检索
                    res = Math.max(dp[i][j],res);
                }
            }
        }
        return res;
    }

}
